<?php
##########################################
##### Autor: Yngrid Coello           #####
##### Correo: y-c-@hotmail.com       #####
##### Ult. Modif: 26/10/2011         #####
##### Pasantias de Grado - USB       #####
##### Realización del Sistema: 0Bs   #####
##########################################

class UsuarioForm extends BaseUsuarioForm
{
  public function configure()
  {
    // Se crea la consulta que se utilizara en el select
	$c = new Criteria;
	$not_in_query = 'empleado.codigo NOT IN (SELECT codigo FROM usuario)';
	$c->add(EmpleadoPeer::CODIGO, $not_in_query, Criteria::CUSTOM);

	$this->setWidgets(array(
          'codigo'   => new sfWidgetFormPropelChoice(array('model'=> 'Empleado','add_empty' => '- Seleccione -','criteria' => $c)),
	  'login'    => new sfWidgetFormInput(),
          'tipo'     => new sfWidgetFormChoice(array('choices' => array('- Seleccione- ','consultor'=>'Consultor','analist'=>'Analista','adminc'=>'Administrador Combustible','admin'=>'Administrador'))),
	  'password' => new sfWidgetFormInputPassword,
	  'password2'=> new sfWidgetFormInputPassword,
    ));
	// Cambiar las etiquetas de los campos en el formulario
	$this->widgetSchema->setLabels(array(
	  'codigo'    => 'C&oacute;digo de Empleado<em>*</em>',
	  'login'    => 'Nombre de Usuario<em>*</em>',
	  'password'      => 'Contrase&ntilde;a<em>*</em>',
	  'password2'      => 'Confirmar contrase&ntilde;a<em>*</em>',
	));
	
	// Colocar los inputs del mismo tama�o
	 //$this->widgetSchema['login']->setAttribute('size', 39);
	 //$this->widgetSchema['password']->setAttribute('size', 39);

	// Setear los errores que aparecen en el formulario
	$this->setValidators(array(
	  'codigo' => new sfValidatorPropelChoice(array('model' => 'empleado', 'column' => 'codigo'),array('required' => 'Debe especificar el c&oacute;digo del empleado del usuario.',)), 
	  'login'   => new sfValidatorString(array('required' => true),array('required' => 'Debe especificar el login del usuario.')),
          'password' => new sfValidatorString(array('required' => true, 'min_length' => 4),array('required' => 'Debe ingresar una contrase&ntilde;a.','min_length' => 'La contrase&ntilde;a debe tener al menos %min_length% caracteres')),
          'tipo'   => new sfValidatorString(array('required' => true),array('required' => 'Debe especificar el tipo de Usuario.')),
    ));
	
	// Conprobar que las contrase�as coinciden
	$this->validatorSchema['password2'] = new sfValidatorString(array ('required' => false));
	$this->widgetSchema->moveField('password2', 'after', 'password');
        $this->mergePostValidator(new sfValidatorSchemaCompare('password', sfValidatorSchemaCompare::EQUAL, 'password2',array(), array('invalid' => 'Las contrase&ntilde;as no coinciden'))); 
	
	// Solucionar problemas con el token CRSF
	$this->widgetSchema->setNameFormat('Usuario[%s]');
	$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
	
  }
}
